home *** CD-ROM | disk | FTP | other *** search
/ Aminet 35 / Aminet 35 (2000)(Schatztruhe)[!][Feb 2000].iso / Aminet / dev / src / td01_src.lha / td_r0.1 / source / td_public.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-06-20  |  5.6 KB  |  216 lines

  1. /*
  2. **      $VER: td_public.h 0.1 (19.6.1999)
  3. **
  4. **      Creation date     : 11.4.1999
  5. **
  6. **      Description       :
  7. **         Public type definitions and constants for the td library.
  8. **
  9. **      Written by Stephan Bielmann
  10. **
  11. **
  12. */
  13.  
  14. #ifndef INCLUDE_TD_PUBLIC_H
  15. #define INCLUDE_TD_PUBLIC_H
  16.  
  17. /*************************** Includes *******************************/
  18.  
  19. /*
  20. ** Amiga includes
  21. */
  22. #include <exec/types.h>
  23.  
  24. /**************************** Defines *******************************/
  25.  
  26. /*
  27. ** View types
  28. */
  29. #define TVWTOP            1    /* Top view, xy axis               */
  30. #define TVWBOTTOM        2    /* Bottom view, xy axis            */
  31. #define TVWLEFT        3    /* Left view yz axis               */
  32. #define TVWRIGHT        4    /* Right view yz axis              */
  33. #define TVWFRONT        5    /* Front view xz axis              */
  34. #define TVWREAR        6    /* Rear view xz axis               */
  35. #define TVWPERSP        7    /* Perspectiv view                 */
  36. #define TVW4SIDES        8    /* Top, front, left and perspecive */
  37.  
  38. /*
  39. ** drawing modes
  40. */
  41. #define DMPOINTS      1   /* Points, black and white      */
  42. #define DMWIREBW      2   /* Wireframe, black and white   */
  43. #define DMWIREGR      3   /* Wireframe, gray scales       */
  44. #define DMWIRECL      4   /* Wireframe, colors            */
  45. #define DMHIDDBW      5   /* Hidden line, black and white */
  46. #define DMHIDDGR      6   /* Hidden line, gray scales     */
  47. #define DMHIDDCL      7   /* Hidden line, colors          */
  48. #define DMSURFBW      8   /* Surface, black and white     */
  49. #define DMSURFGR      9   /* Surface, gray scales         */
  50. #define DMSURFCL     10   /* Surface, colors              */
  51.  
  52. /*
  53. ** Return codes, IoErr will be used too to get AmigaDos errors
  54. */
  55. #define RCNOERROR                     0      /* All went well.                           */
  56. #define RCNOMEMORY                    2000   /* No more free memory.                     */
  57. #define RCNOSPACE                     2001   /* No space to process.                     */
  58. #define RCNOMESH                      2002   /* No mesh to process.                      */
  59. #define RCNOPOLYGON                   2003   /* No polygon  to process.                  */
  60. #define RCNOMATERIAL                    2004   /* No material to process.                  */
  61. #define RCNOPART                        2005   /* No part to process.                      */
  62. #define RCUNKNOWNFORMAT               2006   /* Unkown file format.                      */
  63. #define RCUNKNOWNVTYPE                2007   /* Unkown view type.                        */
  64. #define RCUNKNOWNDMODE                2008   /* Unkown draw mode.                        */
  65. #define RCWRITEDATA                   2009   /* Error occured while writing the file.    */
  66. #define RCREADDATA                    2010   /* Error occured while reading the file.    */
  67. #define RCVALUEOUTOFRANGE             2011   /* An argument its value is out of range.   */
  68. #define RCOVERFLOW                    2012   /* Error, too extensive mesh.               */
  69. #define RCNOVERTEX                    2013   /* The vertex is not in the mesh.           */
  70. #define RCVERTEXUNDERFLOW             2014   /* Error, not enough vertices.              */
  71. #define RCINVALIDOPERATION            2015   /* The operation you want to do is invalid. */
  72. #define RCNOWIDTH                     2016   /* The width is not set.                    */
  73. #define RCNOHEIGHT                    2017   /* The height is not set.                   */
  74. #define RCNOFILE                      2018   /* Could not open the file                  */
  75. #define RCNOTIMPL                     2019   /* If a function is not implemented.        */
  76. #define RCSAVEROPEN                   2020   /* The saver library could not be opened    */
  77. #define RCLOADEROPEN                  2021   /* The loader library could not be opened   */
  78.  
  79.  
  80. /*********************** Type definitions ***************************/
  81.  
  82. typedef enum {
  83.     ER_NOERROR,    /* All went well.                           */
  84.     ER_NOMEMORY,    /* No more free memory.                     */
  85.     ER_NOSPACE,    /* No space to process.                     */
  86.     ER_NOTYPE,
  87.     ER_NOINDEX,
  88.     ER_NOOPERATION,
  89.     ER_NOOBJECT,
  90.     ER_NOVERTEX,
  91.     ER_NOMATERIAL,
  92.     ER_NOMATGROUP,
  93.     ER_NOPOLYGON,
  94.     ER_NOVALUE,
  95.     ER_OVERFLOW,
  96.     ER_WRITEDATA,
  97.     ER_READDATA,
  98.     ER_CREATEFILE,
  99.     ER_NOFILE,
  100.     ER_UNKNOWNFORMAT
  101. } TDerrors;
  102.  
  103. typedef enum {
  104.     TD_NOTHING,
  105.     TD_SPACE,
  106.     TD_MATERIAL,
  107.     TD_AMBIENT,
  108.     TD_DIFFUSE,
  109.     TD_SHININESS,
  110.     TD_TRANSPARENCY,
  111.     TD_ADD,
  112.     TD_SUB,
  113.     TD_MUL,
  114.     TD_DIV,
  115.     TD_SET,
  116.     TD_RESET,
  117.     TD_OBJECT,
  118.     TD_POLYMESH,
  119.     TD_CUBE,
  120.     TD_SCALE,
  121.     TD_ROTATION,
  122.     TD_TRANSLATION,
  123.     TD_ORIGIN,
  124.     TD_POLYGON,
  125.     TD_MATGROUP,
  126.     TD_VERTEX,
  127.     TD_SURFACE,
  128.     TD_TEXTURE,
  129.     TD_TEXBINDING,
  130.     TD_3X,
  131.     TD_3XSAVE,
  132.     TD_3XLOAD
  133. } TDenum;
  134.  
  135. /*
  136. ** Primitive types
  137. */
  138. typedef FLOAT TTDOFloat;
  139. typedef DOUBLE TTDODouble;
  140.  
  141. /*
  142. ** Vertex structures
  143. */
  144. typedef struct {
  145.     TTDOFloat x,y,z;
  146. }TTDOVertexf;
  147.  
  148. typedef struct {
  149.     TTDODouble x,y,z;
  150. }TTDOVertexd;
  151.  
  152. /*
  153. ** Bounding box structures
  154. */
  155. typedef struct {
  156.     TTDOFloat front,rear,left,right,top,bottom;
  157. }TTDOBBoxf;
  158.  
  159. typedef struct {
  160.     TTDODouble front,rear,left,right,top,bottom;
  161. }TTDOBBoxd;
  162.  
  163. /*
  164. ** 2D file parameter structure
  165. */
  166. typedef struct {
  167.     ULONG viewtype;
  168.     ULONG drawmode;
  169.     ULONG width;
  170.     ULONG height;
  171. }TTDO2DParams;
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178. /*
  179. ** Primitive types
  180. */
  181. typedef FLOAT TDfloat;
  182. typedef DOUBLE TDdouble;
  183.  
  184. /*
  185. ** Vector structures
  186. */
  187. typedef struct {
  188.     TDfloat x,y,z;
  189. }TDvectorf;
  190.  
  191. typedef struct {
  192.     TDdouble x,y,z;
  193. }TDvectord;
  194.  
  195. /*
  196. ** Bounding box structures
  197. */
  198. typedef struct {
  199.     TDfloat front,rear,left,right,top,bottom;
  200. }TDbboxf;
  201.  
  202. typedef struct {
  203.     TDdouble front,rear,left,right,top,bottom;
  204. }TDbboxd;
  205.  
  206. /*
  207. ** Color structure
  208. */
  209. typedef struct {
  210.     UBYTE r,g,b;
  211. }TDcolorub;
  212.  
  213. #endif
  214.  
  215. /************************* End of file ******************************/
  216.